Subquery এবং Nested Query

Database Tutorials - এইচ২ ডাটাবেস (H2 Database) H2 এর Advanced Query Techniques |
265
265

Subquery এবং Nested Query হল SQL কুয়েরি গঠনের দুইটি গুরুত্বপূর্ণ অংশ, যেগুলি একে অপরের মধ্যে থাকে। এগুলি মূলত মূল কুয়েরি (Outer Query) এর ভিতরে অন্য একটি কুয়েরি (Inner Query) ব্যবহার করে ডেটাবেজ থেকে আরও জটিল ফলাফল বের করার জন্য ব্যবহৃত হয়।

Subquery এবং Nested Query একই ধারণার মধ্যে পড়ে, তবে কিছু পার্থক্য রয়েছে। Subquery সাধারণত একক কুয়েরি হিসেবে বাহিরে থাকে, যখন Nested Query একাধিক স্তরে কুয়েরি পরিচালনা করে। এই টিউটোরিয়ালে আমরা Subquery এবং Nested Query এর মধ্যে পার্থক্য, তাদের ব্যবহার এবং উদাহরণ নিয়ে আলোচনা করব।


Subquery (Sub-Query) কী?

Subquery হল একটি কুয়েরি যা অন্য একটি কুয়েরির ভিতরে থাকে। এটি মূল কুয়েরি (Outer Query) এর সাথে সম্পর্কিত ডেটা নির্বাচন করতে ব্যবহৃত হয়। Subquery সাধারণত SELECT, INSERT, UPDATE, বা DELETE কুয়েরির অংশ হিসেবে ব্যবহৃত হতে পারে এবং এটি একক বা একাধিক রেকর্ড ফিরিয়ে দিতে পারে।

Subquery এর সিনট্যাক্স:

SELECT column_name
FROM table_name
WHERE column_name = (SELECT column_name FROM table_name WHERE condition);

এখানে, inner (sub) query প্রথমে চালানো হয় এবং তার আউটপুট মূল query এর জন্য একটি মান প্রদান করে।


Subquery এর উদাহরণ

ধরা যাক, আমাদের একটি students টেবিল আছে এবং আমরা এমন ছাত্রদের নাম দেখতে চাই, যাদের গ্রেড 'A'।

Subquery উদাহরণ:

SELECT name
FROM students
WHERE grade = (SELECT grade FROM students WHERE id = 1);

এখানে, inner query প্রথমে id = 1 এর জন্য গ্রেড বের করবে এবং তারপর outer query সেই গ্রেডের জন্য ছাত্রদের নাম প্রদর্শন করবে।

Types of Subqueries

  1. Single-row Subquery: এটি একক মান রিটার্ন করে, যেমন উপরের উদাহরণে।
  2. Multi-row Subquery: এটি একাধিক মান রিটার্ন করে, যেখানে IN অথবা ANY ব্যবহার করা হয়।
  3. Correlated Subquery: এটি মূল কুয়েরি থেকে প্যারামিটার গ্রহণ করে এবং inner query এর জন্য ডেটা নির্ধারণ করতে মূল কুয়েরি ব্যবহার করে।

Nested Query কী?

Nested Query হল একাধিক স্তরের Subqueries-এর ব্যবহার। এটি একটি কুয়েরির মধ্যে অন্য কুয়েরি ব্যবহার করে, যা আরও জটিল ফলাফল প্রদান করতে সহায়ক। Nested query সাধারণত Subqueries এর মধ্যে ব্যবহার করা হয়, যেখানে একাধিক স্তরের কুয়েরি থাকে।

Nested Query এর সিনট্যাক্স:

SELECT column_name
FROM table_name
WHERE column_name = (SELECT column_name FROM table_name WHERE column_name = (SELECT column_name FROM table_name));

এই কুয়েরিতে একটি কুয়েরির ভিতরে অন্য একটি কুয়েরি রয়েছে এবং এটি পুনরাবৃত্তি হতে পারে।


Nested Query উদাহরণ

ধরা যাক, আমরা এমন ছাত্রদের নাম দেখতে চাই, যাদের গ্রেড 'A' এবং তাদের বয়স 20 বছরের বেশি।

SELECT name
FROM students
WHERE grade = (SELECT grade FROM students WHERE age > 20 AND grade = 'A');

এখানে, inner subquery প্রথমে age > 20 এবং grade = 'A' শর্ত পূর্ণ করে, এবং তার পরে Outer Query সেই গ্রেডের ছাত্রদের নাম বের করবে।

Nested Query Example with Multiple Layers

এখানে একটি উদাহরণ যেখানে একাধিক Nested Query ব্যবহার করা হয়েছে:

SELECT name
FROM students
WHERE id IN (
    SELECT id
    FROM students
    WHERE age > 20
    AND id IN (
        SELECT id
        FROM students
        WHERE grade = 'A'
    )
);

এখানে, তিনটি স্তরের Subquery রয়েছে:

  1. প্রথম Subquery ছাত্রদের id বের করছে যারা বয়স ২০ এর বেশি।
  2. দ্বিতীয় Subquery ছাত্রদের id বের করছে যারা গ্রেড 'A' পেয়েছে।
  3. মূল query এই id গুলোর জন্য ছাত্রদের নাম প্রদর্শন করছে।

Subquery এবং Nested Query এর মধ্যে পার্থক্য

বৈশিষ্ট্যSubqueryNested Query
সংজ্ঞাএকটি কুয়েরি যা অন্য একটি কুয়েরির ভিতরে থাকে।একাধিক কুয়েরি যার মধ্যে একাধিক Subqueries থাকে।
ব্যবহারসাধারণত একটি মান রিটার্ন করতে ব্যবহৃত হয়।একাধিক স্তরের কুয়েরি একসাথে কাজ করতে ব্যবহৃত হয়।
কুয়েরির স্তরএকক স্তরের কুয়েরিএকাধিক স্তরের কুয়েরি
টিপIN, =, বা ANY এর মতো operators এর সাথে ব্যবহার করা হয়।একাধিক Subquery সংযুক্ত করা হয়।

Subquery এবং Nested Query এর সুবিধা

  1. সহজ এবং পরিষ্কার কোড: Subquery এবং Nested Query ব্যবহার করলে কোড অনেক বেশি পরিষ্কার হয়, কারণ এর মাধ্যমে একাধিক স্টেটমেন্ট বা অপারেশনকে একত্রে করা যায়।
  2. ফ্লেক্সিবিলিটি: এগুলি ডেটাবেজের মধ্যে জটিল সম্পর্ক তৈরি করতে এবং বিশ্লেষণ করার জন্য সহায়ক।
  3. ডেটার নির্ভুলতা: Subquery ব্যবহার করে নির্দিষ্ট শর্ত অনুসারে ডেটা সিলেক্ট করতে সহায়ক হয়, যা আরও নির্ভুল ফলাফল দেয়।

Subquery এবং Nested Query এর উন্নত ব্যবহার

ধরা যাক, আমরা এমন ছাত্রদের তালিকা দেখতে চাই যারা ৪০% বা তার বেশি মার্ক পেয়েছে এবং তাদের গ্রেড 'A'। প্রথমে, আমাদের সর্বোচ্চ মার্কের জন্য একটি Subquery ব্যবহার করতে হবে।

SELECT name
FROM students
WHERE marks >= (SELECT MAX(marks) FROM students) 
AND grade = 'A';

এখানে, প্রথম Subquery সর্বোচ্চ মার্কের মান বের করে, এবং outer query সেই মানের তুলনায় ছাত্রদের marks এবং grade যাচাই করে।


সারাংশ

Subquery এবং Nested Query SQL কুয়েরি অপারেশনগুলির মধ্যে অত্যন্ত শক্তিশালী এবং কার্যকরী উপাদান। Subquery একক মান রিটার্ন করতে ব্যবহৃত হয়, যখন Nested Query একাধিক স্তরের কুয়েরি একত্রে ব্যবহারের জন্য ব্যবহৃত হয়। এগুলি জটিল কুয়েরি এবং ডেটাবেজ অপারেশনে বিশেষভাবে কার্যকরী, যা ডেটার গুণগত মান এবং কার্যক্ষমতা বাড়ানোর জন্য ব্যবহৃত হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion